#include<stdio.h>
#include<stdlib.h>

int a=0;
int b;

int main(int argc,char* argv[],char* env[])
{
  printf("code      address:    %p\n",main);
  printf("initial   address:    %p\n",&a);
  printf("unintial  address:    %p\n",&b);
  
  char*c1 = (char*)malloc(sizeof(char)*6);
  char*c2 = (char*)malloc(sizeof(char)*6);
  char*c3 = (char*)malloc(sizeof(char)*6);
  char*c4 = (char*)malloc(sizeof(char)*6);

  printf("heap     address:   %p\n",c1);
  printf("heap     address:   %p\n",c2);
  printf("heap     address:   %p\n",c3);
  printf("heap     address:   %p\n",c4);

  printf("stack    address:   %p\n",&c1);
  printf("stack    address:   %p\n",&c2);
  printf("stack    address:   %p\n",&c3);
  printf("stack    address:   %p\n",&c4);

  printf("agrv     address:   %p\n",argv[0]);
  printf("env      address:   %p\n",env[0]);
 
  return 0;

}
